Estoy tratando de ejecutar una aplicación de transacciones, pero el error No puedo leer las propiedades de undefined (leyendo 'reducir') no me permite ejecutar la aplicación. Mi pantalla se convierte en un blanco completo por cierto. Estaba funcionando bien, y luego, de repente, boom, ya no funcionaba: 
Este es mi Resumen index.tsx:
import React, {useContext} from 'react' import incomeImg from '../../assets/income.svg' import outcomeImg from '../../assets/outcome.svg' import totalImg from '../../assets/total.svg' import { useTransactions } from '../../hooks/useTransactions' import { Container } from './styles' export function Summary() { const {transactions} = useTransactions() const summary = transactions.reduce((acc,transaction)=>{ if (transaction.type === 'deposit'){ acc.deposit += transaction.amount acc.total += transaction.amount } else { acc.withdraw = transaction.amount acc.total -= transaction.amount } return acc }, { deposit: 0, withdraw: 0, total: 0 }) return (/*SOME HTML*/)También pongo aquí mi gancho useTransaction: https://gist.github.com/gabrielforster/314e5a5f91d8f83c78a3cc8a56a55435
Lo mejor es publicar el código para useTransactions() . Aquí supongo que en realidad está esperando que se completen algunos datos. La mejor manera de manejar esto es con un useEffect que se activa cuando transactions se actualizan y ponen summary en un estado. Agregué un control de encadenamiento opcional .? para verificar nulo o indefinido antes de usar reduce.
const [summary, setSummary] = React.useState([]) React.useEffect(() => { setSummary(transactions?.reduce( (acc, transaction) => { if (transaction.type === 'deposit') { acc.deposit += transaction.amount; acc.total += transaction.amount; } else { acc.withdraw = transaction.amount; acc.total -= transaction.amount; } return acc; }, { deposit: 0, withdraw: 0, total: 0, }, )); }, [transactions]);¡Fue un error en mi gancho useTransaction! gracias a todos